/*
 * Copyright 2020-2025 the original author or authors.
 * You cannot use this file unless authorized by the author.
 */

package org.ipig.commons.conf.redis;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * redis Conf
 *
 * @author <a href="mailto:comchnts@163.com">chinats</a>
 * @version $$Id: RedisConf.java 3 2020-01-21 09:36:33Z ts <comchnts@163.com> $$
 * @since 1.0
 */
@Data
@ToString
public class RedisConf implements Serializable {
    // 控制一个pool可分配多少个jedis实例，通过pool.getResource()来获取；如果赋值为-1，则表示不限制；如果pool已经分配了maxActive个jedis实例，则此时pool的状态为exhausted。
    private Integer maxTotal;
    // 控制一个pool最多有多少个状态为idle(空闲)的jedis实例；
    private Integer maxIdle;
    // 控制一个pool最少有多少个状态为idle(空闲)的jedis实例；
    private Integer minIdle;
    // 表示当borrow一个jedis实例时，最大的等待时间，如果超过等待时间，则直接抛出JedisConnectionException；
    private Integer maxWaitMillis;
    // 在获取连接的时候检查有效性
    private Boolean testOnBorrow;
    // redis服务器地址
    private String host;
    // redis服务端口
    private String port = "6379";
    // redis访问密码
    private String password;
    /**
     * defaultDbIndex
     */
    private int defaultDbIndex = 0;
    /**
     * defaultTimeout
     */
    private int defaultTimeout = 3000;
    // 其它属性
    private Map<String, Object> props = new HashMap<>();
}
